Skip to content

feat(goals): verify Goal commitments without gating local Todos - #8161

Merged
huangruiteng merged 4 commits into
mainfrom
codex/goal-scope-acceptance-20261106
Nov 7, 2026
Merged

huangruiteng merged 4 commits into
mainfrom
codex/goal-scope-acceptance-20261106

Conversation

@huangruiteng

@huangruiteng huangruiteng commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

Goal outcome maintenance runs by default. A registered Goal retains its requirements, reviews their evidence and returns uncovered work to replanning.

The existing owner can configure a check with scope: {kind: "goal"}. Local Todos can complete independently while the configured Goal check remains open. The check's outcome_id assigns its receipt to that outcome. A standalone check reports on the whole Goal. Outcomes that share a requirement ID and description keep their own evidence.

中文:已声明的成果要求默认持续跟踪,未满足时进入既有重规划。所有者授权的 Goal 检查可以覆盖跨任务的成果,同时局部 Todo 正常完成。验收回执按 outcome_id 归属。

Author Declaration

Written by model_agent, OpenAI Codex.

Implemented against the Goal acceptance observation and owner execution contract. The TypeScript acceptance owner resolves check scope, source fencing and receipt identity. The Dashboard presents the same configure, check and readback flow.

Criterion Disposition Evidence
Goal requirements remain visible before a checker is configured implemented File and SQLite CLI inspect the two unconfigured outcomes and their acceptance gaps.
Goal checks allow local Todo completion implemented Real owner configure, failing check, local Todo completion and quota replan.
A receipt reaches its intended outcome implemented Two outcomes with the same requirement ID and description remain independent. A standalone pass updates the Goal result. A bound pass satisfies the named outcome.
Existing coverage scopes, source checks and replay implemented File, SQLite and isolated PostgreSQL authority suites.
Scope and result in the product implemented Existing Dashboard acceptance UI, scope copy and Markdown export.

Scope And Continuation

Goal scope has empty Todo bindings. The owner reviews the executable check through the existing configure and verify path. Benchmark adoption and installed product qualification are separate delivery stages.

Validation

  • Tested revision 690576c4def81d4dfaee078e199585743ec0a595 against fa266a2430085a0969ec627f4fb5ce719f037f41
  • Run state finished with isolated synthetic fixtures
Check kind Result Evidence
regression_parity passed File and SQLite reproduced incorrect cross-outcome credit before the receipt binding. Both pass the corrected workflow.
real_entrypoint passed 52 CLI and oracle tests, including default progressive quota read, unconfigured acceptance gaps, authorized check failure and passing readback.
real_backend passed 116 TypeScript Goal acceptance and outcome cases, including the isolated PostgreSQL provider. PostgreSQL authority-store integration passed 389 tests on PostgreSQL 17.11 with zero skips.
static passed Control-plane and Dashboard type checks, focused Ruff, diff-scoped semantic advisory, public boundary scan and standard premerge with five direct and 16 selected checks.
integration passed Dashboard delivery-review, scope readback and export smokes.

The merge tree against current main was checked after validation. Each PR path matched the tested head in that tree.

Frontend / Visual Evidence

The scope and result use the existing delivery-check presentation. These captures are from the original Goal-scope revision 42f978ecc44cf552ccd6cfc45e948cd3fc20b40d, using the source Dashboard and a synthetic, isolated SQLite backend. The current source passed the Dashboard type and presentation checks.

Desktop — failing check with Goal scope:

Goal scope and failed check

Narrow — passing check after artifact repair:

Goal scope and passing check after artifact repair

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

动机 / Motivation

[P2] 需要补齐 PostgreSQL authority 的实际验证,当前结论为 REQUEST_CHANGES。 新增 Goal-only checks preserve local work and require independent verification 用例位于 File/SQLite/PostgreSQL 的公共 provider 循环(tests/control_plane_ts/goal_acceptance_authority.test.ts:486),但 PostgreSQL 的 24 行全部跳过。这里缺的是受影响后端的必要证据,未复现 PostgreSQL 功能缺陷。

需要持续检查整个 Goal 交付物、同时让各局部任务正常完成的项目负责人和 Agent。 一个跨任务交付检查原先只能绑定局部工作:绑定所有任务会阻碍局部完成,不配置又无法独立反映整体交付。新增 goal 范围后,局部 Todo 可以完成,独立检查失败仍会保留对应成果缺口,修复交付物后再检查。 在真实 File/SQLite CLI 和 SQLite 页面路径上,局部完成不再受这组 Goal 检查约束;失败、冲突和后续通过均可读回,未验证的其他要求仍保持未验证。 不声明 Goal 全部完成,不启动长期实验,不扩展执行权限,也不改变旧 selected_work、all_advancement 与已存 legacy 合同。 共享 PostgreSQL authority 的新增 goal 范围用例尚未实测;不能用 File/SQLite 通过结果代替。

改动思路 / Approach

整体检查与局部工作覆盖是不同的 owner 意图,扩展现有 AcceptanceScope 判别联合比改变旧范围或增加独立开关更小;配置、CAS、校验命令和成果投影仍各由原 owner 负责。 本 PR 交付 CLI 和现有 Dashboard 中可操作、可恢复的 Goal 独立验收;共享 PostgreSQL 后端的实际验证仍是交付前缺口。

情形 局部任务 独立成果检查
既有 selected_work / all_advancement 保留既有覆盖与门禁 保留原语义
显式 goal、检查失败 可以正常完成 对应要求继续保留缺口
显式 goal、实际检查通过 不由检查伪造完成 只满足实际匹配的要求
来源或版本冲突 不扩大权限 保留原结果,刷新后明确再检查

这张表解释代码关系;执行证据来自实际 CLI、HTTP/SQLite 与独立 base/head 对照。没有用局部任务数量、绿色状态或作者声明代表整个 Goal 的完成。

具体改动 / Changes

完整审查 12 文件差异(+119/-20)及未改动调用入口。依据是修改前的 docs/reference/goal-acceptance-observations.md,固定在 927d0b389096a9ca8702c4da14a43836063ed29b。goal-outcome-separation 要求独立成果判断;explicit-owner-scope 要求显式 owner 范围与原有 source/CAS/replay 边界;这两项在本地真实路径上得到证实。postgresql-real-path 对应同版本 docs/development/testing-and-quality.md 的真实受影响后端门禁,目前未满足。新增文档只能说明提案,不能倒过来成为自身的独立规范。

关键代码讲解

  • AcceptanceScope / normalizeGoalAcceptanceDocument(acceptance_contract.ts:28 及其归一化调用)扩展现有联合为显式 goal。它要求空 bindings,compact outcome check 因而不再需要占位 Todo;省略旧 scope 的文档仍保留 legacy 含义。
  • acceptanceIncludes / acceptanceWorkDigest(同文件 186、349)让 goal scope 不覆盖任何局部 Todo,摘要不随无关任务变化;合同与目标依据仍由原 owner 校验。当前和未来 Todo 都不应被这项 Goal 检查暗中加门禁。
  • observeOutcomeRequirements(outcome_requirements.ts:347)把实际配置、实际通过且匹配的检查映射到已有成果要求。局部 done、自评或未匹配检查不能代替独立验证。
  • Dashboard 原有 schemas、prepared action、检查组件和导出复用同一范围。中英文标签展示 Goal-only coverage,不再渲染误导性的任务关联标题;配置/准备本身不会自动运行命令。

本地结果:TypeScript authority 59 通过、24 PostgreSQL 跳过;真实 File/SQLite CLI 与 observation 65 通过;相同 head 测试字节在正确 base checkout 中的旧范围 32 通过,新增 goal-only 用例在旧解码器上按预期拒绝。Dashboard build 与 API/export/negative smoke 通过。

页面使用实际 production Chat bundle、真实 serve_chat handler 和隔离 SQLite authority:采用现有准备方案后,实际检查命令失败;局部 Todo 仍能完成。并发修改导致 provider revision 冲突时保留原失败结果,刷新不重跑命令,明确重新检查修复后的交付物才得到通过。原始 native readback 中另一项要求仍为 unverified,Goal completion 未被声明完成。准备方案的 host 回调使用脚本,没有在线模型调用。

对主干的风险 / Risks

最重要的未解风险是共享 authority 的后端覆盖。新增测试确实能经 PostgreSqlAuthorityStore 调用相同 configure/verify 所有者;本机 CLI 的 File/SQLite 限制不能证明共享 API 不受影响。仓库明确要求:涉及 PostgreSQL authority 时使用隔离临时实例运行 npm run test:postgresql-authority-store,skipped 不能算通过,没有安全实例则暂停交付。最小补齐方式是在 42f978ecc44cf552ccd6cfc45e948cd3fc20b40d 设置指向一次性隔离服务的 LOOPX_TEST_POSTGRES_URL,记录后端版本,并实际观察新范围配置、失败→通过、CAS/replay 与局部工作独立性;无需给此 PR 加一个新工作流或放宽门禁。

另外,完整 typecheck 和 diff premerge 仍有红色结果:base/head 均为未改动的 conversation_binding.ts:1144 TS2345,todo-readmodel-boundary 则均为 loopx.status.open_todo_items AttributeError。已分别运行相同命令、核对失败身份和详情,并用独立 acceptance/frontend 检查覆盖本次本地不变量。因此它们不是新代码回归;原始 required 检查和严格 CQR 仍保持失败,不能用归因把它们标绿。未查询或等待 CI。

新 discriminator 会写入现有持久化合同;回滚旧 reader 前应由 owner 明确清除或重新配置这种文档,不能偷偷按 legacy 解释,也不能切换 provider 来绕过故障。Stop、权限、预算、默认成果核对与旧工作范围保持原 owner。长期模型采纳、完整成本和后续实验不由这些局部验证证明。

我的整体评价 / Verdict

这是合理且可独立审查的一段交付:前端、原生入口、负例和恢复路径已经串通,显式范围也比占位任务或第二开关更清楚。已检查实际打包页面的桌面与窄屏默认、展开和失败恢复状态,使用长中文要求、通过与未验证混合内容;主要状态和检查操作可见,来源与摘要保留在高级详情中。 未验证已安装 App、在线 Lark/模型采纳、PostgreSQL 和长时间运行;页面夹具使用真实 SQLite/HTTP,准备方案的 host 回调为脚本。 当前唯一新增审查阻塞是上述必要 PostgreSQL 证据缺失;保留现有通过证据,补齐同头的真实后端验证后再判断。没有合并或改变运行安装。

Reviewer: model_agent · OpenAI · gpt-6.1-sol · runtime_reported · effort=max

English verdict: REQUEST_CHANGES 42f978ecc44cf552ccd6cfc45e948cd3fc20b40d. The File/SQLite and packaged UI journey is verified, but the new shared Goal-scope authority path has no real PostgreSQL execution evidence. Run the required isolated PostgreSQL suite; skips are not qualification. Unchanged baseline failures and separate merge holds remain disclosed.

…al-acceptance-outcome-binding-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Require a retained outcome ID before a Goal-only check contributes to its requirements. Exercise the owner configure and verify path through the default policy transport.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…al-acceptance-outcome-binding-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@huangruiteng
huangruiteng merged commit abf1442 into main Nov 7, 2026
27 of 45 checks passed
@huangruiteng
huangruiteng deleted the codex/goal-scope-acceptance-20261106 branch November 7, 2026 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants